import pandas as pd
from sklearn.neighbors import KNeighborsRegressor
"""
K近邻算法_回归    得到的目标值不再是某一个目标值、而是多个目标值的均值
"""

# 1.数据准备
"""
为什么x是列表嵌套?  因为每个子列表示一条样本数据的特征值
为什么y又是简单的列表呢？ 因为y作为目标列，只有一列，每条数据的目标值最多只有一个。
"""
x = [
    [32, 35, 67],
    [22, 25, 36],
    [56, 45, 38],
    [58, 76, 45],
    [33, 25, 38],
    [48, 67, 28]
]                                     # 每一条样本数据的特征值
y = [0.1, 0.1, 0.2, 0.3, 0.2, 0.2]    # 每一条样本数据的目标值

# 2.机器学习
# 2.1 使用算法构建模型
model = KNeighborsRegressor(n_neighbors=3)

# 2.2 训练模型
model.fit(x, y)

# 2.3 模型预测
x_predict = [[67, 89, 33]]                       # 预测数据
y_predict = model.predict(x_predict)             # 预测结果
print(f"预测的结果是：{y_predict}")